/**
 * SEZIONE CAMPAGNE
 */
var arrMappe = Array();
var TIMERMAPPA = 120000;
var newMap = null;
var DISTANZA = 1;
var currentBounds = null;
var MINWIDTH = 1040;
var MINHEIGHT = 600; 

function getDettagli(id){
    $('#content').load('templates/campagna-cliente.html', function(){
        if (id) {
            $('#cont-navbar').html('CAMPAGNE > Dettagli campagna');
            $('#titolo').html('Dettagli Campagna');
            var strId = '&id=' + id;
            $.ajax({
                type: 'POST',
                url: 'users.php',
                data: 'op=getRecord&id=' + id,
                dataType: 'json',
                success: function(msg){
                	aggiornaSessioneCliente(msg);
                	var provincia_txt = '';
                	if (province.length > 0) {
                        for (var i = 0; i < province.length; i++) {
                            if(province[i].sigla==msg.campagna[0].provincia) { 
                            	provincia_txt = province[i].provincia;
                            	break;
                            }
                        }
                    }
                    $('#descrizione').html(msg.campagna[0].nome);
                    $('#data_start').html(msg.campagna[0].data_start);
                    $('#data_end').html(msg.campagna[0].data_end);
                    $('#num_flayer').html(msg.campagna[0].num_flayer);
                    $('#num_smart').html(msg.campagna[0].num_smart);
                    $('#citta').html(msg.campagna[0].citta);
                    $('#provincia').html(provincia_txt);
                    var zone = msg.zone;
                    if(zone) {
	                	if (zone.length > 0) { // ZONE
	                            for (var i = 0; i < zone.length; i++) {
	                                $('#zone-scelte').append('<div id="zona-' + zone[i].idzona + '" class="box-zona-scelta" zona="' + zone[i].idzona + '" style="cursor:default;">' + zone[i].nome + '</div>');
	                            }
	                        }
                    }
                }
            });
        }
    });
}

function Mappa(){
    this.arrPath = Array();
    this.arrMarkers = Array();
    this.currentMap = null;
    this.idTimeSms = null;
    this.idTimeMappa = null;
    arrMappe.push(this); // tengo traccia delle mappe aperte per gestire gli aggiornamenti in background
    this.setMappa = function(idcampagna){
        if (this.idTimeMappa) 
            clearInterval(this.idTimeMappa);
        var mappa = this;
        $.ajax({
            type: 'POST',
            url: 'users.php',
            data: 'op=getCoordinate&id=' + idcampagna,
            dataType: 'json',
            success: function(msg){
                // creo la mappa
            	aggiornaSessioneCliente(msg);
            	var w = $(window).width();
            	var h = $(window).height();
            	var width_maps = w - 200 - 10 - 20;
            	var height_maps = h - 100 - 40;
            	if(width_maps < MINWIDTH) width_maps = MINWIDTH;
            	if(height_maps < MINHEIGHT) height_maps = MINHEIGHT;
            	$('#canvasMap').width(width_maps);
            	$('#canvasMap').height(height_maps + 15);
            	$('#cont-maps').width(width_maps - 300 - 20);
            	$('#cont-maps').height(height_maps - 25);
                $('#canvasMap').show();
                $('#canvasMap').show();
                var arrCoord = Array();
                var arrCorrieri = Array();
                var arrFoto = Array();
                var geocoder = new google.maps.Geocoder();
                var address = msg.citta + " " + msg.provincia;
                var stat = '';
                var dataOra = '';
                var startCampagna = '';
                var endCampagna = '';
                var numFoto = 0;
                var totKm = 0;
                $('#helper-message').html('<div class="header-messaggi">'+
                '<div id="btn-messaggi" class="tab-messaggi tab-attivo" onClick="showTabMessaggi(\'tab-messaggi\',\'tab-stat\');">CORRIERI</div>'+
                '<div id="btn-stat" class="tab-stat" onClick="showTabMessaggi(\'tab-stat\',\'tab-messaggi\');">STATISTICHE</div>'+
                '</div>' +
                '<div id="tab-messaggi" style="border: 1px solid silver;"></div>');
                var idsmart = 0;
                var dataLog = '';
                if (msg.totalCount > 0) {
                    for (var i = 0; i < msg.totalCount; i++) {
                    	var arrDataLog = msg.rows[i].data_log.split("T");
                    	var arrDataSplit = arrDataLog[0].split("-");
                    	var distance = DISTANZA;
                    	dataOra = arrDataSplit[2]+'/'+arrDataSplit[1]+'/'+arrDataSplit[0]+' ore '+arrDataLog[1].substring(0,8);
                    	if(i == 0) { //STAT
                    		startCampagna = msg.rows[i].data_log;
                    		stat += '<p class="p-sms"><b>Inizio Campagna: </b>'+ dataOra +'</p>';
                    	}
                    	if(i == (msg.totalCount -1)) { //STAT
                    		endCampagna = msg.rows[i].data_log;
                    		stat += '<p class="p-sms"><b>Ultima rilevazione: </b>'+ dataOra +'</p>';
                    	}
                        if (msg.rows[i].idsmart != idsmart) {
                            idsmart = msg.rows[i].idsmart;
                            var index = arrCoord.push(new Array());
                            var index2 = mappa.arrMarkers.push(new Array());
                            dataLog = '';
                        }
                        arrCorrieri[index - 1] = {
                            idsmart: idsmart,
                            corriere: msg.rows[i].corriere,
                            colore: msg.rows[i].colore
                        }
                        if(i > 0) {
                        	distance = calcolaDistanza(msg.rows[i].coord_y, msg.rows[i].coord_x,msg.rows[i-1].coord_y, msg.rows[i-1].coord_x,'K');
                        }
                        if(arrDataLog[0]!=dataLog) {
                        	dataLog = arrDataLog[0];
                        	var indexData = arrCoord[index - 1].push(new Array());
                        } else if(distance > DISTANZA) {
                        	var indexData = arrCoord[index - 1].push(new Array());
                        } else if(distance <= DISTANZA && i > 0) {
                        	if(!isNaN(distance)) totKm+=distance;
                        }
                        arrCoord[index - 1][indexData - 1].push(new google.maps.LatLng(msg.rows[i].coord_y, msg.rows[i].coord_x));
                        if (msg.rows[i].foto != '') {
                        	numFoto++;
                        	mappa.arrMarkers[index - 1].push({
                                foto: msg.rows[i].foto,
                                position: new google.maps.LatLng(msg.rows[i].coord_y, msg.rows[i].coord_x),
                                marker: null,
                                data_ora: arrDataSplit[2]+'/'+arrDataSplit[1]+'/'+arrDataSplit[0]+' ore '+arrDataLog[1].substring(0,8)
                            });
                        }     
                    }
                }
                var myOptions = {
                    zoom: 14,
                    mapTypeId: google.maps.MapTypeId.ROADMAP
                };
                var map = new google.maps.Map(document.getElementById("cont-maps"), myOptions);
                geocoder.geocode({
                    'address': address
                }, function(results, status){
                    if (status == google.maps.GeocoderStatus.OK) {
                        map.setCenter(results[0].geometry.location);
                     // CENTRO MAPPA //
                        if(currentBounds) {
                        	map.fitBounds(currentBounds);
                        } else {
                        var bounds = new google.maps.LatLngBounds();
                        if(arrCoord.length > 0) {
                        	for (var j = 0; j < arrCoord.length; j++) {
                            	for(var m = 0;m < arrCoord[j].length; m++) {
                            		for(var b=0;b<arrCoord[j][m].length;b++) {
                                    	bounds.extend(arrCoord[j][m][b]);
                                    }
                            	}                       
                            }
                            map.fitBounds(bounds);	
                        } 
                       }
                    }
                    else {
                        alert("Problemi nella localizzazione della citta': " + status);
                    }
                });
                for (var j = 0; j < arrCoord.length; j++) {
                	var color = '#'+arrCorrieri[j].colore;
                    mappa.arrPath[j] = new Array();
                    for(var m = 0;m < arrCoord[j].length; m++) {
                    	var flightPath = new google.maps.Polyline({
                            path: arrCoord[j][m],
                            strokeColor: color,
                            strokeOpacity: 1.0,
                            strokeWeight: 2
                        });
                        mappa.arrPath[j].push(flightPath);
                        flightPath.setMap(map);
                    }
                    // MARKER FOTO
                    if (mappa.arrMarkers[j]) {
                        if (mappa.arrMarkers[j].length) {
                            var infowindow = new google.maps.InfoWindow({
                                content: ''
                            });
                            for (var k = 0; k < mappa.arrMarkers[j].length; k++) {
                                var markerFoto = new google.maps.Marker({
                                    position: mappa.arrMarkers[j][k].position,
                                    map: map,
                                    title: "Clicca per vedere la Foto " + (k + 1),
                                    contFoto: '<div class="titolo11">Foto ' + (k + 1) + '<br>Data: '+ mappa.arrMarkers[j][k].data_ora +'</div>' +
                                    '<div class="win-foto-text"></div>' +
                                    '<div class="win-foto"><img src="' +
                                    mappa.arrMarkers[j][k].foto +
                                    '" /></div>',
                                    icon: 'images/ico-foto.png'
                                });
                                google.maps.event.addListener(markerFoto, 'click', function(){
                                    infowindow.setContent(this.contFoto);
                                    infowindow.open(map, this);
                                });
                                
                                mappa.arrMarkers[j][k].marker = markerFoto;
                            }
                        }
                    }
                    // HELPER
                    $('#tab-messaggi').append('<div class="helper-color" style="background-color:' + color + '"></div>' +
                    '<div class="helper-text">Corriere ' +
                    (j+1) +
                    '</div>' +
                    '<div class="helper-action"><input title="MOSTRA / NASCONDI" type="checkbox" value="1" id="mostra-percorso-' +
                    arrCorrieri[j].idsmart +
                    '" index="' +
                    j +
                    '" checked></div>' +
                    '<div class="chiudi"></div>');
                    $('#mostra-percorso-' + arrCorrieri[j].idsmart).unbind('click');
                    $('#mostra-percorso-' + arrCorrieri[j].idsmart).click(function(){
                        var value = this.checked;
                        var index = $(this).attr('index');
                        var arrPoly = mappa.arrPath[index];
                        var markers = Array();
                        if (mappa.arrMarkers[index]) { // esistono dei markers
                            if (mappa.arrMarkers[index].length) {
                                markers = mappa.arrMarkers[index];
                            }
                        }
                        if (value) { // MOSTRA
                            for(var b=0;b<arrPoly.length;b++) {
                          	  var poly = arrPoly[b];
                          	  poly.setMap(mappa.currentMap);
                                for (var k = 0; k < markers.length; k++) {
                                    markers[k].marker.setMap(mappa.currentMap);
                                } 
                            }
                          }
                          else { // NASCONDI
                          	for(var b=0;b<arrPoly.length;b++) {
                            	    var poly = arrPoly[b];
  	                          	mappa.currentMap = poly.getMap();
  	                            poly.setMap(null);
  	                            for (var k = 0; k < markers.length; k++) {
  	                                markers[k].marker.setMap(null);
  	                            }
                          	}
                          }
                    });
                }
             // STAT
                if(i > 0) {
                	var arrDataStart = startCampagna.split("T");
                	var arrDataStartSplit = arrDataStart[0].split("-");
                	var arrTimeStart = arrDataStart[1].substr(0,8).split(':');
                	var arrDataEnd = endCampagna.split("T");
                	var arrDataEndSplit = arrDataEnd[0].split("-");
                	var arrTimeEnd = arrDataEnd[1].substr(0,8).split(':');
                	var dateStart = new Date(arrDataStartSplit[0], arrDataStartSplit[1]-1, arrDataStartSplit[2], arrTimeStart[0], arrTimeStart[1], arrTimeStart[2], 0);
                	var dateEnd = new Date(arrDataEndSplit[0], arrDataEndSplit[1]-1, arrDataEndSplit[2], arrTimeEnd[0], arrTimeEnd[1], arrTimeEnd[2], 0);
                	var durata = timeSpan(dateStart,dateEnd,"years,months,weeks,days,hours,minutes,seconds,milliseconds");
                	var strGiorni = '';
                	if(durata.days > 0)  {
                		durata.days > 1 ? strGiorni = durata.days + ' giorni' : strGiorni = '1 giorno';
                	} else 
                		strGiorni = '';
                	stat += '<p class="p-sms"><b>Durata: </b>'+ strGiorni +' '+durata.hours+' ore e '+ durata.minutes +' minuti</p>';
                	stat += '<p class="p-sms"><b>Numero Foto: </b>'+numFoto+'</p>';
                	stat += '<p class="p-sms"><b>Distanza percorsa: </b>'+roundNumber(totKm,2)+' Km.</p>';
                	$('#helper-message').append('<div id="tab-stat" style="display:none;border: 1px solid silver;">' +
                    stat +
                    '</div>');	
                }               
                google.maps.event.addListener(map, 'error', function(ev){
                    alert(ev);
                });
                $('#btn-aggiorna-mappa').unbind('click');
                $('#btn-aggiorna-mappa').click(function(){
                	currentBounds = map.getBounds();
                    mappa.setMappa(idcampagna);
                });
                $('#btn-chiudi-mappa').unbind('click');
                $('#btn-chiudi-mappa').click(function(){
                    $('#canvasMap').hide();
                    $('#helper').html(printLegendaCliente());
                    clearInterval(mappa.idTimeMappa);
                    mappa = null;
                });
                var closeMappa = function(){
                    if (mappa) {
                        clearInterval(mappa.idTimeMappa);
                        mappa = null;
                    }
                };
                //eval('mappa.idTimeMappa = setInterval("getMappa(' + idcampagna + ')", ' + TIMERMAPPA + ')');
                $('#viewleft a').unbind('click', closeMappa);
                $('#viewleft a').click('click', closeMappa);
            }
        });
    };
}

function getMappa(idcampagna){
	if(newMap) {
		if (newMap.idTimeMappa) 
	        clearInterval(this.idTimeMappa);
	}
	newMap = null;
    newMap = new Mappa();
    newMap.setMappa(idcampagna);
}

function cercaCampagna(){
    $('#content').load('templates/cerca-campagna-cliente.html', function(){
        $('#data_end,#data_start').datepicker();
        if (province.length > 0) {
            for (var i = 0; i < province.length; i++) {
                $('#provincia').append('<option value="' + province[i].sigla + '">' +
                province[i].provincia +
                '</option>');
            }
        }
        $('#cont-navbar').html('CAMPAGNE > Cerca');
        $('#titolo').html('Cerca Campagna');
        $('#form-cerca-campagna').validate({
            errorClass: 'form-error',
            rules: {
                data_start: 'required',
                data_end: 'required'
            },
            submitHandler: function(form){
                if ($('#nome').val() != "" || $('#data_start').val() != "" || $('#data_end').val() != "" || $('#provincia').val() != "" || $('#citta').val() != "") {
                    var strData = 'op=cerca&nome=' + $('#nome').val() +
                    '&data_start=' +
                    $('#data_start').val() +
                    '&data_end=' +
                    $('#data_end').val() +
                    '&provincia=' +
                    $('#provincia').val() +
                    '&citta=' +
                    $('#citta').val() +
                    '&min='+$('#cerca-campagna').attr('min')+'&max='+$('#cerca-campagna').attr('max');
                    $.ajax({
                        type: 'POST',
                        url: 'users.php',
                        data: strData,
                        dataType: 'json',
                        success: function(msg){
                        	aggiornaSessioneCliente(msg);
                            if (msg.totalCount > 0) {
                                if (!msg.rows[0].msg) {
                                    var params = {
                                        cols: [{
                                            name: 'Dal.',
                                            index: 'data_start2',
                                            width: '80px'
                                        }, {
                                            name: 'Al.',
                                            index: 'data_end2',
                                            width: '80px'
                                        }, {
                                            name: 'Campagna',
                                            index: 'nome',
                                            width: '240px'
                                        }, {
                                            name: 'N. volantini',
                                            index: 'num_flayer',
                                            width: '100px'
                                        }, {
                                            name: '&nbsp;',
                                            index: '',
                                            width: '196px',
                                            align: 'center'
                                        }],
                                        min: $('#cerca-campagna').attr('min'),
                                        max: $('#cerca-campagna').attr('max'),
                                        //orderby: p_orderby,
                                        icons: [ {
                                            class: 'ico-maps',
                                            action: 'getMappa',
                                            data: 'idcampagna',
                                            tip: 'APRI LA MAPPA'
                                        }]
                                    };
                                    //aggiornaSessioneCliente(msg);
                                    var html = '<div class="elenco" style="">' +
                                    '<div class="header-elenco">Cerca Campagna</div>';
                                    if (params.cols.length > 0) {
                                        html += '<div class="riga">';
                                        for (var i = 0; i < params.cols.length; i++) {
                                            if (params.cols[i].width != '') 
                                                html += '<div class="cell-header" style="width:' + params.cols[i].width + '">' + params.cols[i].name + '</div>';
                                        }
                                        html += '</div>';
                                    }
                                    if (msg.rows) {
                                        var totalCount = msg.totalCount;
                                        if (msg.rows.length > 0) {
                                            for (var k = 0; k < msg.rows.length; k++) {
                                                var id = msg.rows[k].idutente;
                                                var bcolor = '';
                                                k % 2 == 0 ? bcolor = '#F5F5F5' : bcolor = '#ffffff';
                                                html += '<div class="riga">';
                                                for (var i = 0; i < params.cols.length; i++) {
                                                    var campo = params.cols[i].index;
                                                    params.cols[i].align ? align = params.cols[i].align : align = 'left';
                                                    if (i < params.cols.length - 1) 
                                                        html += '<div class="cell" style="width:' + params.cols[i].width + ';background-color:' + bcolor + ';text-align:' + align + '">' + msg.rows[k][campo] + '</div>';
                                                    else {
                                                    
                                                        if (params.icons.length > 0) {
                                                            html += '<div class="cell" style="width:' + params.cols[i].width + ';background-color:' + bcolor + ';text-align:' + align + '">';
                                                            for (var j = 0; j < params.icons.length; j++) {
                                                                switch (params.icons[j].class) {
                                                                    case 'ico-attiva':
                                                                        msg.rows[k].attivo || msg.rows[k].aperta ? html += '<div class="ico-attiva" title="' + params.icons[j].tip + '" onClick="' + params.icons[j].action + '(' + msg.rows[k][params.icons[j].data] + ');"></div>' : html += '<div class="ico-disattiva" title="' + params.icons[j + 1].tip + '" onClick="' + params.icons[j + 1].action + '(' + msg.rows[k][params.icons[j + 1].data] + ');"></div>';
                                                                        break;
                                                                        
                                                                    case 'ico-disattiva':
                                                                        break;
                                                                        
                                                                    case 'ico-archivia':
                                                                        msg.rows[k].archivio ? html += '<div class="ico-ripristina" title="' + params.icons[j + 1].tip + '" onClick="' + params.icons[j + 1].action + '(' + msg.rows[k][params.icons[j + 1].data] + ');"></div>' : html += '<div class="ico-archivia" title="' + params.icons[j].tip + '" onClick="' + params.icons[j].action + '(' + msg.rows[k][params.icons[j].data] + ');"></div>';
                                                                        break;
                                                                        
                                                                    case 'ico-ripristina':
                                                                        break;
                                                                        
                                                                    default:
                                                                        html += '<div class="' + params.icons[j].class + '" title="' + params.icons[j].tip + '" onClick="' + params.icons[j].action + '(' + msg.rows[k][params.icons[j].data] + ');"></div>';
                                                                        break;
                                                                }
                                                            }
                                                            html += '</div>';
                                                        }
                                                    }
                                                }
                                                html += '</div>';
                                            }
                                        }
                                    }
                                    html += '</div>';
                                    if (totalCount > 0) { //attivo il paginatore
                                        var num_pages = 1;
                                        var current = 1;
                                        var avanti = '';
                                        var indietro = '';
                                        var fine = '';
                                        var inizio = '';
                                        if (totalCount > params.max) {
                                            num_pages = Math.floor(totalCount / params.max);
                                            if (totalCount > num_pages) 
                                                num_pages++;
                                            if (params.min > 0) { // devo calcolare in che pagina siamo e impostare i parametri per < <<
                                                current = (params.min / params.max) + 1;
                                                inizio = '<a href="javascript:;" onClick="goToCerca(0,' + parseInt(params.max) + ');"><<</a>';
                                                indietro = '<a href="javascript:;" onClick="goToCerca(' + (parseInt(params.min) - parseInt(params.max)) + ',' + parseInt(params.max) + ');"><</a>';
                                            }
                                            if (current < num_pages) {
                                                fine = '<a href="javascript:;" onClick="goToCerca(' + ((num_pages - 1) * parseInt(params.max)) + ',' + parseInt(params.max) + ');">>></a>';
                                                avanti = '<a href="javascript:;" onClick="goToCerca(' + (parseInt(params.min) + parseInt(params.max)) + ',' + parseInt(params.max) + ');">></a>';
                                            }
                                        }
                                        html += '<div class="pager">';
                                        html += '<div class="pager-left">' + inizio + ' ' + indietro + '</div>';
                                        html += '<div class="pager-center">Pag ' + current + ' di ' + num_pages + '</div>';
                                        html += '<div class="pager-right">' + avanti + ' ' + fine + '</div>';
                                        html += '</div>';
                                    }
                                    // LEGENDA 
                                    html += '<div id="helper" class="help">'+printLegendaCliente()+'</div>';
                                    // MAPPA
                                    html += '<div id="canvasMap" class="maps"><div id="cont-maps" class="canvas-map"></div>' +
                                    '<div id="toolbarMaps" class="toolMaps">' +
                                    '<input id="btn-aggiorna-mappa" type="button" value="AGGIORNA">&nbsp;<input id="btn-chiudi-mappa" type="button" value="CHIUDI">' +
                                    '</div>' +
                                    '</div>';
                                    $('#content').html(html);
                                }
                                else {
                                    alert(msg.rows[0].msg);
                                }
                            }
                            else 
                                alert('Nessuna campagna trovata.');
                        }
                    });
                }
            }
        });
    });
}

function goToCerca(p_min, p_max){
	if(p_min=="") {
	  p_min = $('#cerca-campagna').attr('min');	
	} else {
		$('#cerca-campagna').attr('min',p_min);
	}
	if(p_max=="") {
	  p_max = $('#cerca-campagna').attr('max');	
	} else {
		$('#cerca-campagna').attr('max',p_max);
	}
    $.ajax({
        type: 'POST',
        url: 'campagne.php',
        data: 'op=cerca&min=' + p_min + '&max=' + p_max,
        dataType: 'json',
        success: function(msg){
        	aggiornaSessioneCliente(msg);
            if (msg.totalCount > 0) {
                if (!msg.rows[0].msg) {
                    var params = {
                        cols: [{
                            name: 'Dal.',
                            index: 'data_start',
                            width: '80px'
                        }, {
                            name: 'Al.',
                            index: 'data_end',
                            width: '80px'
                        }, {
                            name: 'Campagna',
                            index: 'nome',
                            width: '240px'
                        }, {
                            name: 'N. volantini',
                            index: 'num_flayer',
                            width: '100px'
                        }, {
                            name: '&nbsp;',
                            index: '',
                            width: '196px',
                            align: 'center'
                        }],
                        min: p_min,
                        max: p_max,
                        //orderby: p_orderby,
                        icons: [{
                            class: 'ico-modifica',
                            action: 'aggiornaCampagna',
                            data: 'idcampagna',
                            tip: 'MODIFICA'
                        }, {
                            class: 'ico-elimina',
                            action: 'eliminaCampagnaCerca',
                            data: 'idcampagna',
                            tip: 'ELIMINA'
                        }, {
                            class: 'ico-attiva',
                            action: 'chiudiCampagnaCerca',
                            data: 'idcampagna',
                            tip: 'CHIUDI'
                        }, {
                            class: 'ico-disattiva',
                            action: 'apriCampagnaCerca',
                            data: 'idcampagna',
                            tip: 'APRI'
                        }, {
                            class: 'ico-archivia',
                            action: 'archiviaCampagnaCerca',
                            data: 'idcampagna',
                            tip: 'METTI IN ARCHIVIO'
                        }, {
                            class: 'ico-ripristina',
                            action: 'ripristinaCampagnaCerca',
                            data: 'idcampagna',
                            tip: 'RIPRISTINA'
                        }, {
                            class: 'ico-maps',
                            action: 'getMappa',
                            data: 'idcampagna',
                            tip: 'APRI LA MAPPA'
                        }]
                    };
                    //aggiornaSessioneCliente(msg);
                    var html = '<div class="elenco" style="">' +
                    '<div class="header-elenco">Cerca Campagna</div>';
                    if (params.cols.length > 0) {
                        html += '<div class="riga">';
                        for (var i = 0; i < params.cols.length; i++) {
                            if (params.cols[i].width != '') 
                                html += '<div class="cell-header" style="width:' + params.cols[i].width + '">' + params.cols[i].name + '</div>';
                        }
                        html += '</div>';
                    }
                    if (msg.rows) {
                        var totalCount = msg.totalCount;
                        if (msg.rows.length > 0) {
                            for (var k = 0; k < msg.rows.length; k++) {
                                var id = msg.rows[k].idutente;
                                var bcolor = '';
                                k % 2 == 0 ? bcolor = '#F5F5F5' : bcolor = '#ffffff';
                                html += '<div class="riga">';
                                for (var i = 0; i < params.cols.length; i++) {
                                    var campo = params.cols[i].index;
                                    params.cols[i].align ? align = params.cols[i].align : align = 'left';
                                    if (i < params.cols.length - 1) 
                                        html += '<div class="cell" style="width:' + params.cols[i].width + ';background-color:' + bcolor + ';text-align:' + align + '">' + msg.rows[k][campo] + '</div>';
                                    else {
                                    
                                        if (params.icons.length > 0) {
                                            html += '<div class="cell" style="width:' + params.cols[i].width + ';background-color:' + bcolor + ';text-align:' + align + '">';
                                            for (var j = 0; j < params.icons.length; j++) {
                                                switch (params.icons[j].class) {
                                                    case 'ico-attiva':
                                                        msg.rows[k].attivo || msg.rows[k].aperta ? html += '<div class="ico-attiva" title="' + params.icons[j].tip + '" onClick="' + params.icons[j].action + '(' + msg.rows[k][params.icons[j].data] + ');"></div>' : html += '<div class="ico-disattiva" title="' + params.icons[j + 1].tip + '" onClick="' + params.icons[j + 1].action + '(' + msg.rows[k][params.icons[j + 1].data] + ');"></div>';
                                                        break;
                                                        
                                                    case 'ico-disattiva':
                                                        break;
                                                        
                                                    case 'ico-archivia':
                                                        msg.rows[k].archivio ? html += '<div class="ico-ripristina" title="' + params.icons[j + 1].tip + '" onClick="' + params.icons[j + 1].action + '(' + msg.rows[k][params.icons[j + 1].data] + ');"></div>' : html += '<div class="ico-archivia" title="' + params.icons[j].tip + '" onClick="' + params.icons[j].action + '(' + msg.rows[k][params.icons[j].data] + ');"></div>';
                                                        break;
                                                        
                                                    case 'ico-ripristina':
                                                        break;
                                                        
                                                    default:
                                                        html += '<div class="' + params.icons[j].class + '" title="' + params.icons[j].tip + '" onClick="' + params.icons[j].action + '(' + msg.rows[k][params.icons[j].data] + ');"></div>';
                                                        break;
                                                }
                                            }
                                            html += '</div>';
                                        }
                                    }
                                }
                                html += '</div>';
                            }
                        }
                    }
                    html += '</div>';
                    if (totalCount > 0) { //attivo il paginatore
                        var num_pages = 1;
                        var current = 1;
                        var avanti = '';
                        var indietro = '';
                        var fine = '';
                        var inizio = '';
                        if (totalCount > params.max) {
                            num_pages = Math.floor(totalCount / params.max);
                            if (totalCount > num_pages) 
                                num_pages++;
                            if (params.min > 0) { // devo calcolare in che pagina siamo e impostare i parametri per < <<
                                current = (params.min / params.max) + 1;
                                inizio = '<a href="javascript:;" onClick="goToCerca(0,' + parseInt(params.max) + ');"><<</a>';
                                indietro = '<a href="javascript:;" onClick="goToCerca(' + (parseInt(params.min) - parseInt(params.max)) + ',' + parseInt(params.max) + ');"><</a>';
                            }
                            if (current < num_pages) {
                                fine = '<a href="javascript:;" onClick="goToCerca(' + ((num_pages - 1) * parseInt(params.max)) + ',' + parseInt(params.max) + ');">>></a>';
                                avanti = '<a href="javascript:;" onClick="goToCerca(' + (parseInt(params.min) + parseInt(params.max)) + ',' + parseInt(params.max) + ');">></a>';
                            }
                        }
                        html += '<div class="pager">';
                        html += '<div class="pager-left">' + inizio + ' ' + indietro + '</div>';
                        html += '<div class="pager-center">Pag ' + current + ' di ' + num_pages + '</div>';
                        html += '<div class="pager-right">' + avanti + ' ' + fine + '</div>';
                        html += '</div>';
                    }
                    // LEGENDA 
                    html += '<div id="helper" class="help">'+printLegendaCliente()+'</div>';
                    // MAPPA
                    html += '<div id="canvasMap" class="maps"><div id="cont-maps" class="canvas-map"></div>' +
                    '<div id="toolbarMaps" class="toolMaps">' +
                    '<input id="btn-aggiorna-mappa" type="button" value="AGGIORNA">&nbsp;<input id="btn-chiudi-mappa" type="button" value="CHIUDI">' +
                    '</div>' +
                    '</div>';
                    $('#content').html(html);
                }
                else {
                    alert(msg.rows[0].msg);
                }
            }
            else 
                alert('Nessuna campagna trovata.');
        }
    });
}
